le2(0, Y) -> true
le2(s1(X), 0) -> false
le2(s1(X), s1(Y)) -> le2(X, Y)
minus2(0, Y) -> 0
minus2(s1(X), Y) -> ifMinus3(le2(s1(X), Y), s1(X), Y)
ifMinus3(true, s1(X), Y) -> 0
ifMinus3(false, s1(X), Y) -> s1(minus2(X, Y))
quot2(0, s1(Y)) -> 0
quot2(s1(X), s1(Y)) -> s1(quot2(minus2(X, Y), s1(Y)))
↳ QTRS
↳ DependencyPairsProof
le2(0, Y) -> true
le2(s1(X), 0) -> false
le2(s1(X), s1(Y)) -> le2(X, Y)
minus2(0, Y) -> 0
minus2(s1(X), Y) -> ifMinus3(le2(s1(X), Y), s1(X), Y)
ifMinus3(true, s1(X), Y) -> 0
ifMinus3(false, s1(X), Y) -> s1(minus2(X, Y))
quot2(0, s1(Y)) -> 0
quot2(s1(X), s1(Y)) -> s1(quot2(minus2(X, Y), s1(Y)))
QUOT2(s1(X), s1(Y)) -> QUOT2(minus2(X, Y), s1(Y))
IFMINUS3(false, s1(X), Y) -> MINUS2(X, Y)
MINUS2(s1(X), Y) -> LE2(s1(X), Y)
MINUS2(s1(X), Y) -> IFMINUS3(le2(s1(X), Y), s1(X), Y)
LE2(s1(X), s1(Y)) -> LE2(X, Y)
QUOT2(s1(X), s1(Y)) -> MINUS2(X, Y)
le2(0, Y) -> true
le2(s1(X), 0) -> false
le2(s1(X), s1(Y)) -> le2(X, Y)
minus2(0, Y) -> 0
minus2(s1(X), Y) -> ifMinus3(le2(s1(X), Y), s1(X), Y)
ifMinus3(true, s1(X), Y) -> 0
ifMinus3(false, s1(X), Y) -> s1(minus2(X, Y))
quot2(0, s1(Y)) -> 0
quot2(s1(X), s1(Y)) -> s1(quot2(minus2(X, Y), s1(Y)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
QUOT2(s1(X), s1(Y)) -> QUOT2(minus2(X, Y), s1(Y))
IFMINUS3(false, s1(X), Y) -> MINUS2(X, Y)
MINUS2(s1(X), Y) -> LE2(s1(X), Y)
MINUS2(s1(X), Y) -> IFMINUS3(le2(s1(X), Y), s1(X), Y)
LE2(s1(X), s1(Y)) -> LE2(X, Y)
QUOT2(s1(X), s1(Y)) -> MINUS2(X, Y)
le2(0, Y) -> true
le2(s1(X), 0) -> false
le2(s1(X), s1(Y)) -> le2(X, Y)
minus2(0, Y) -> 0
minus2(s1(X), Y) -> ifMinus3(le2(s1(X), Y), s1(X), Y)
ifMinus3(true, s1(X), Y) -> 0
ifMinus3(false, s1(X), Y) -> s1(minus2(X, Y))
quot2(0, s1(Y)) -> 0
quot2(s1(X), s1(Y)) -> s1(quot2(minus2(X, Y), s1(Y)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
LE2(s1(X), s1(Y)) -> LE2(X, Y)
le2(0, Y) -> true
le2(s1(X), 0) -> false
le2(s1(X), s1(Y)) -> le2(X, Y)
minus2(0, Y) -> 0
minus2(s1(X), Y) -> ifMinus3(le2(s1(X), Y), s1(X), Y)
ifMinus3(true, s1(X), Y) -> 0
ifMinus3(false, s1(X), Y) -> s1(minus2(X, Y))
quot2(0, s1(Y)) -> 0
quot2(s1(X), s1(Y)) -> s1(quot2(minus2(X, Y), s1(Y)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
LE2(s1(X), s1(Y)) -> LE2(X, Y)
POL( LE2(x1, x2) ) = x1
POL( s1(x1) ) = x1 + 1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
le2(0, Y) -> true
le2(s1(X), 0) -> false
le2(s1(X), s1(Y)) -> le2(X, Y)
minus2(0, Y) -> 0
minus2(s1(X), Y) -> ifMinus3(le2(s1(X), Y), s1(X), Y)
ifMinus3(true, s1(X), Y) -> 0
ifMinus3(false, s1(X), Y) -> s1(minus2(X, Y))
quot2(0, s1(Y)) -> 0
quot2(s1(X), s1(Y)) -> s1(quot2(minus2(X, Y), s1(Y)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
IFMINUS3(false, s1(X), Y) -> MINUS2(X, Y)
MINUS2(s1(X), Y) -> IFMINUS3(le2(s1(X), Y), s1(X), Y)
le2(0, Y) -> true
le2(s1(X), 0) -> false
le2(s1(X), s1(Y)) -> le2(X, Y)
minus2(0, Y) -> 0
minus2(s1(X), Y) -> ifMinus3(le2(s1(X), Y), s1(X), Y)
ifMinus3(true, s1(X), Y) -> 0
ifMinus3(false, s1(X), Y) -> s1(minus2(X, Y))
quot2(0, s1(Y)) -> 0
quot2(s1(X), s1(Y)) -> s1(quot2(minus2(X, Y), s1(Y)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
IFMINUS3(false, s1(X), Y) -> MINUS2(X, Y)
Used ordering: Polynomial Order [17,21] with Interpretation:
MINUS2(s1(X), Y) -> IFMINUS3(le2(s1(X), Y), s1(X), Y)
POL( true ) = max{0, -1}
POL( false ) = max{0, -1}
POL( IFMINUS3(x1, ..., x3) ) = x2
POL( s1(x1) ) = x1 + 1
POL( 0 ) = 0
POL( le2(x1, x2) ) = max{0, -1}
POL( MINUS2(x1, x2) ) = x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
MINUS2(s1(X), Y) -> IFMINUS3(le2(s1(X), Y), s1(X), Y)
le2(0, Y) -> true
le2(s1(X), 0) -> false
le2(s1(X), s1(Y)) -> le2(X, Y)
minus2(0, Y) -> 0
minus2(s1(X), Y) -> ifMinus3(le2(s1(X), Y), s1(X), Y)
ifMinus3(true, s1(X), Y) -> 0
ifMinus3(false, s1(X), Y) -> s1(minus2(X, Y))
quot2(0, s1(Y)) -> 0
quot2(s1(X), s1(Y)) -> s1(quot2(minus2(X, Y), s1(Y)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
QUOT2(s1(X), s1(Y)) -> QUOT2(minus2(X, Y), s1(Y))
le2(0, Y) -> true
le2(s1(X), 0) -> false
le2(s1(X), s1(Y)) -> le2(X, Y)
minus2(0, Y) -> 0
minus2(s1(X), Y) -> ifMinus3(le2(s1(X), Y), s1(X), Y)
ifMinus3(true, s1(X), Y) -> 0
ifMinus3(false, s1(X), Y) -> s1(minus2(X, Y))
quot2(0, s1(Y)) -> 0
quot2(s1(X), s1(Y)) -> s1(quot2(minus2(X, Y), s1(Y)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
QUOT2(s1(X), s1(Y)) -> QUOT2(minus2(X, Y), s1(Y))
POL( true ) = max{0, -1}
POL( ifMinus3(x1, ..., x3) ) = x2
POL( minus2(x1, x2) ) = x1
POL( false ) = 0
POL( QUOT2(x1, x2) ) = max{0, x1 + x2 - 1}
POL( s1(x1) ) = x1 + 1
POL( 0 ) = max{0, -1}
POL( le2(x1, x2) ) = max{0, x1 - 1}
minus2(0, Y) -> 0
ifMinus3(true, s1(X), Y) -> 0
ifMinus3(false, s1(X), Y) -> s1(minus2(X, Y))
minus2(s1(X), Y) -> ifMinus3(le2(s1(X), Y), s1(X), Y)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
le2(0, Y) -> true
le2(s1(X), 0) -> false
le2(s1(X), s1(Y)) -> le2(X, Y)
minus2(0, Y) -> 0
minus2(s1(X), Y) -> ifMinus3(le2(s1(X), Y), s1(X), Y)
ifMinus3(true, s1(X), Y) -> 0
ifMinus3(false, s1(X), Y) -> s1(minus2(X, Y))
quot2(0, s1(Y)) -> 0
quot2(s1(X), s1(Y)) -> s1(quot2(minus2(X, Y), s1(Y)))